package com.qqin.controller;


import com.qqin.pojo.Check;
import com.qqin.pojo.PageBean;
import com.qqin.pojo.Result;
import com.qqin.service.CheckService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Slf4j//日志文件
@CrossOrigin//允许跨域请求，使得前端应用即使部署在不同的域名下也可以访问该控制器的接口。
@RestController//标识这是一个控制器类，控制器中的方法可以直接返回对象，Spring会自动将对象序列化为JSON格式。
@RequestMapping("/checks")//请求路径
public class CheckController {
    @Autowired
    private CheckService checkService;

    //根据ID查询审查记录
    @GetMapping("/{checkId}")
    public Result selectById(@PathVariable Integer checkId) {
        log.info("根据ID查询审查记录");//记录一条信息日志，表明正在根据ID查询审查记录。
        Check check = checkService.selectById(checkId);

        return Result.success(check);
    }

    //根据用户ID查询用户相关的审查记录
    @GetMapping("/personal")
    public Result selectByUser(Integer userId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer pageSize) {
        log.info("根据审查表查询用户商品");
        PageBean pageBean = checkService.selectByUser(userId, page, pageSize);

        return Result.success(pageBean);
    }

    //分页查询所有审查记录(@R...可以将URL路径中的占位符替换为实际的参数值。
    @GetMapping("/page")
    public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer pageSize) {
        log.info("分页查询所有审查记录");
        PageBean pageBean = checkService.page(page, pageSize);

        return Result.success(pageBean);
    }

    //更新审查记录的状态(R...将json转化为check对象(@PutMapping 是 @RequestMapping 注解的特化，专门用于处理PUT请求。
    @PutMapping("/update")
    public Result changeState(@RequestBody Check check) {
        log.info("改变审查状态");
        checkService.changeState(check);

        return Result.success();
    }

}
